home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / complib / chetrd.z / chetrd
Text File  |  1998-10-30  |  6KB  |  199 lines

  1.  
  2.  
  3.  
  4. CCCCHHHHEEEETTTTRRRRDDDD((((3333FFFF))))                                                          CCCCHHHHEEEETTTTRRRRDDDD((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CHETRD - reduce a complex Hermitian matrix A to real symmetric
  10.      tridiagonal form T by a unitary similarity transformation
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE CHETRD( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO )
  14.  
  15.          CHARACTER      UPLO
  16.  
  17.          INTEGER        INFO, LDA, LWORK, N
  18.  
  19.          REAL           D( * ), E( * )
  20.  
  21.          COMPLEX        A( LDA, * ), TAU( * ), WORK( * )
  22.  
  23. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  24.      CHETRD reduces a complex Hermitian matrix A to real symmetric tridiagonal
  25.      form T by a unitary similarity transformation:  Q**H * A * Q = T.
  26.  
  27.  
  28. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  29.      UPLO    (input) CHARACTER*1
  30.              = 'U':  Upper triangle of A is stored;
  31.              = 'L':  Lower triangle of A is stored.
  32.  
  33.      N       (input) INTEGER
  34.              The order of the matrix A.  N >= 0.
  35.  
  36.      A       (input/output) COMPLEX array, dimension (LDA,N)
  37.              On entry, the Hermitian matrix A.  If UPLO = 'U', the leading N-
  38.              by-N upper triangular part of A contains the upper triangular
  39.              part of the matrix A, and the strictly lower triangular part of A
  40.              is not referenced.  If UPLO = 'L', the leading N-by-N lower
  41.              triangular part of A contains the lower triangular part of the
  42.              matrix A, and the strictly upper triangular part of A is not
  43.              referenced.  On exit, if UPLO = 'U', the diagonal and first
  44.              superdiagonal of A are overwritten by the corresponding elements
  45.              of the tridiagonal matrix T, and the elements above the first
  46.              superdiagonal, with the array TAU, represent the unitary matrix Q
  47.              as a product of elementary reflectors; if UPLO = 'L', the
  48.              diagonal and first subdiagonal of A are over- written by the
  49.              corresponding elements of the tridiagonal matrix T, and the
  50.              elements below the first subdiagonal, with the array TAU,
  51.              represent the unitary matrix Q as a product of elementary
  52.              reflectors. See Further Details.  LDA     (input) INTEGER The
  53.              leading dimension of the array A.  LDA >= max(1,N).
  54.  
  55.      D       (output) REAL array, dimension (N)
  56.              The diagonal elements of the tridiagonal matrix T:  D(i) =
  57.              A(i,i).
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCHHHHEEEETTTTRRRRDDDD((((3333FFFF))))                                                          CCCCHHHHEEEETTTTRRRRDDDD((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      E       (output) REAL array, dimension (N-1)
  75.              The off-diagonal elements of the tridiagonal matrix T:  E(i) =
  76.              A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
  77.  
  78.      TAU     (output) COMPLEX array, dimension (N-1)
  79.              The scalar factors of the elementary reflectors (see Further
  80.              Details).
  81.  
  82.      WORK    (workspace/output) COMPLEX array, dimension (LWORK)
  83.              On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  84.  
  85.      LWORK   (input) INTEGER
  86.              The dimension of the array WORK.  LWORK >= 1.  For optimum
  87.              performance LWORK >= N*NB, where NB is the optimal blocksize.
  88.  
  89.      INFO    (output) INTEGER
  90.              = 0:  successful exit
  91.              < 0:  if INFO = -i, the i-th argument had an illegal value
  92.  
  93. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  94.      If UPLO = 'U', the matrix Q is represented as a product of elementary
  95.      reflectors
  96.  
  97.         Q = H(n-1) . . . H(2) H(1).
  98.  
  99.      Each H(i) has the form
  100.  
  101.         H(i) = I - tau * v * v'
  102.  
  103.      where tau is a complex scalar, and v is a complex vector with v(i+1:n) =
  104.      0 and v(i) = 1; v(1:i-1) is stored on exit in
  105.      A(1:i-1,i+1), and tau in TAU(i).
  106.  
  107.      If UPLO = 'L', the matrix Q is represented as a product of elementary
  108.      reflectors
  109.  
  110.         Q = H(1) H(2) . . . H(n-1).
  111.  
  112.      Each H(i) has the form
  113.  
  114.         H(i) = I - tau * v * v'
  115.  
  116.      where tau is a complex scalar, and v is a complex vector with v(1:i) = 0
  117.      and v(i+1) = 1; v(i+2:n) is stored on exit in A(i+2:n,i), and tau in
  118.      TAU(i).
  119.  
  120.      The contents of A on exit are illustrated by the following examples with
  121.      n = 5:
  122.  
  123.      if UPLO = 'U':                       if UPLO = 'L':
  124.  
  125.        (  d   e   v2  v3  v4 )              (  d                  )
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. CCCCHHHHEEEETTTTRRRRDDDD((((3333FFFF))))                                                          CCCCHHHHEEEETTTTRRRRDDDD((((3333FFFF))))
  137.  
  138.  
  139.  
  140.        (      d   e   v3  v4 )              (  e   d              )
  141.        (          d   e   v4 )              (  v1  e   d          )
  142.        (              d   e  )              (  v1  v2  e   d      )
  143.        (                  d  )              (  v1  v2  v3  e   d  )
  144.  
  145.      where d and e denote diagonal and off-diagonal elements of T, and vi
  146.      denotes an element of the vector defining H(i).
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.